package com.tdk.bts.action;

import java.util.ArrayList;
import java.util.List;

import com.tdk.bts.entity.BookInfo;
import com.tdk.bts.factory.ObjectFactory;
import com.tdk.bts.service.BookInfoService;
import com.tdk.bts.service.TheaterService;
import com.tdk.bts.util.Page;
import com.tdk.bts.util.Request;
import com.tdk.bts.vo.BookInfoVO;
import com.tdk.bts.vo.BookVO;

public class BookInfoAction {
	private BookInfoService service;
	/**
	 * 预定
	 * 请求参数
	 * 	screenId 场次id
	 *  seats    座位数组[8 1  9 5  9 10] ,元素1：[8,元素2：1,元素3：  9,元素4：5，元素5：9,元素6：10],
	 *  表示[8,1],[9,5],[9,10]三个座位
	 *  phone    手机号
	 * 响应数据
	 * 	String类型的 validCode：一个6位的只包含大小写字母和数字的验证码	
	 */
		public void book(Request request)throws Exception {
		service = (BookInfoService)ObjectFactory.getObject("bookInfoServiceProxy");
		String screenIdStr = request.getParameter("screenId");
		int screenId = Integer.parseInt(screenIdStr);
		String[] seats = request.getParameterValues("seats");
		
		String phone =  request.getParameter("phone");
		String data = service.getValidCode(screenId,seats,phone);
		request.setAttribute("validCode",data);
	}

	/**
	 * 取票：将对应的票的状态改为 '已取'
	 * 请求参数
	 * 	phone 		  手机号
	 *  validCode    验证码
	 * 响应数据
	 * 	BookInfoVO类型的 bookInfo： BookInfoVO对象	
	 */
	public void getTicket(Request req) throws Exception{
		service = (BookInfoService)ObjectFactory.getObject("bookInfoServiceProxy");
		
		List<BookInfo> bookInfos = new ArrayList<BookInfo>();
		bookInfos.add(new BookInfo(null, 2, 2, 3, null, null, null));
		bookInfos.add(new BookInfo(null, 2,4, 6, null, null, null));
		bookInfos.add(new BookInfo(null, 2, 6,1, null, null, null));
		//BookInfoVO vo = new BookInfoVO("终结者", "放映室12A", "2017年6月29日", "22:58:21","1", bookInfos);
		BookInfoVO vo =service.getTicket(req.getParameter("phone"), req.getParameter("validCode"));
		req.setAttribute("bookInfo", vo);
	}

	/**
	 * 查询所有的电影信息
	 * 
	 * 请求参数
	 * 	pageNo 查询页数
	 * 响应数据
	 * 	Page<BookVO>类型的 data		
	 */
	public void findBookVOByPage(Request req) throws Exception {
		BookInfoService service = (BookInfoService) ObjectFactory
				.getObject("bookInfoServiceProxy");
		Page<BookVO> data = service.findBookVOByPage(Integer.parseInt(req.getParameter("pageNo")));
		req.setAttribute("data", data);
	}

}
